#include "head.h"

/**
 * 参数：所有用户的信息
 * 返回值：登录成功后返回用户信息
 */
U_data Log_in(U_list *list)
{
    if (list == NULL)
    {
        printf("S_List_log_in : list = NULL\n");
        exit(-1);
    }
    if (list->next == NULL)
    {
        printf("S_List_log_in : list->next = NULL\n");
        exit(-1);
    }

    U_data data;

    // 开始登录
    while (1)
    {
        system("clear");
        printf("请输入账号: ");
        scanf("%s", data.name);

        printf("请输入密码: ");
        scanf("%s", data.passwd);

        U_node *ptr = list->next;

        while (ptr != NULL)
        {
            // 比较用户名
            if (strcmp(data.name, ptr->data.name) == 0)
            {
                // 比较密码
                if (strcmp(data.passwd, ptr->data.passwd) == 0)
                {
                    return ptr->data; // 登录成功，返回用户信息
                }
            }
            ptr = ptr->next;
        }
        printf("用户名或密码错误，请重新输入。\n");
    }
}

//用户注册
void reg(U_list *list)
    {
        if (NULL == list)
    {
        ERRLOG("链表的动态空间为空");
        return ;
    }
    U_data data;
    char password[128];
    //data.name = 0;
    printf("请输入你 账号:\n");
    scanf("%s" , data.name);

    printf("请输入你的密码:\n");
    scanf("%s" , data.passwd);

    printf("请再次输入你的密码:\n");
    scanf("%s" ,password );
    
    if (strcmp(password , data.passwd))
    {
        printf("两次密码输入不相同 请重新运行本程序\n");
        exit(-1);
    }

    printf("恭喜你 注册成功\n");
    data.grade=1;
    data.value=0;

    // 插入到链表
    
    S_List_insert( list,data,1);

    // 写入到文件
    S_List_File_print(list,REGULAR_FILE);
}

